1. Technical Field
This invention relates to the provision of full independent computer system services across a network of remote computer connections.
2. Description of the Prior Art
The problem of providing computer services across remote computer connections has existed during the last 30–40 years beginning with the early stages of computer technologies. In the very beginning, during the mainframe computer age, this problem was solved by renting computer terminals which were associated with a mainframe computer and then connecting the related computer terminals to the mainframe computer using a modem or dedicated lines to provide the mainframe computer with data access services (U.S. Pat. No. 4,742,477, Bach 1987). Later, with the beginning of the age of personal computers and with the widespread acceptance of the client-server model (Crowley 1997), the problem of access to large information sources in the form of computer readable data, at first look, seems to have been solved. Specifically, every user could have his own computer and then rent an Internet connection to obtain access to information sources or data stored on other computers.
Today, with wide growth of Internet access, another problem has arisen—the problem of information creation. Usually, users want to put out their own information sources in the form of websites and then provide other computer users with access to these websites. However, it is not possible to install a web server on most home connections to a personal computer, simply because the connection to the network from a home computer is usually not adequate to handle the amount of data transfer required. Accordingly, this need has given birth to an industry called a “hosting service”—a hosting service provides computer users with an ability to utilize installed web services (Eckel 1995).
When one wants to provide Internet users with information in the form of computer readable data (usually in web server form) which could be of interest to a wide range of Internet users, one must store the information and provide a reliable network connection to access the information when needed.
The problem of providing ordinary personal computer users access to information on large capacity computers occurred virtually from the beginning of personal computer production. During the era of the mainframe computer, when direct user access to computer equipment was difficult, this problem was solved by providing users with remote terminals directly connected to a single mainframe computer (U.S. Pat. No. 4,742,477, Bach 1987). These remote terminals were used to obtain certain services from mainframe computers. The advantage of using multiple remote terminals with a single mainframe computer was that the user had little trouble accessing both the mainframe computer hardware and, to some extent, the software resident on the mainframe computer. This is because mainframe computer administration has always dealt with installing and updating software.
Later, with the introduction of personal computers, each personal computer user could gain access to computing power directly from his workplace or home. With the advent of Internet access, the needs of most users for large amounts of information and robust operating systems were met.
The client-server model of networking computers (Crowley 1997) provides a system for accessing computer readable data in which a personal computer is designated as the client computer and another computer or a set of computers is designated as the server computer. Access to the server computer is carried out in a remote way covering the majority of needs of the common computer users.
But even the client-server model has some very fundamental drawbacks. Specifically, the high price of servicing many client workplace computers, including the creation of a network infrastructure and the installation and upgrading of software and hardware to obtain bandwidth for client computer network access, is a significant drawback. Additionally, the rapid growth of information on the Internet has produced more users who in turn continue to fill the Internet with more information. The required service to client computers should be provided by a sufficiently powerful server computer (usually a web or www server) which has an access channel to the Internet with corresponding power. Usually, personal computers have enough performance capability to interact with most of the web servers, but the typical network access is usually less productive than what is required. Additionally, most home personal computers cannot provide sufficient reliability and security. Apart from Internet services, the same problems occur when ordinary personal computer users utilize very complex software packages. Users spend a lot of time and effort setting up and administering these complex software packages. To solve these web service problems, a remote web host (usually supported by an ISP, i.e., Internet Service Provider) usually hosts the web servers for the personal computer users. Thus, the personal computer user is restricted to use of the standard preinstalled web server of the ISP. As a result, the personal computer user's options are limited.
Problems usually arise with the use of CGI (The Common Gateway Interface) scripts and more complex applications requiring a data base. Such computer tools cannot be used to access any of the personal computer user's programs on a remote server. The personal computer user is used to the absolute freedom of adjustment of his local machine, and therefore the limitations that are imposed by the administration of a remote node on a data storage network are often unacceptable.
One solution to these problems is the use of computer emulators. The OS/390 operating system for IBM mainframe computers has been in use for many years (Samson). The same products with hardware partitioning are produced by another vendor of computers—Sun Microelectronics (Kobert). Each personal computer user is given a fully-functional virtual computer with emulated hardware. This approach is very costly because the operating system installed in the corresponding virtual computer does not recognize the existence of the neighboring analogous computers and shares practically no resources with those computers. Experience has shown that the price associated with virtual computers is very great.
Another analogous solution for non-mainframe computers utilizes software emulators of the VMware type (VMWare Workstation 2.0 Documentation). These software programs exist for different types of operating systems and wholly emulate a typical computer inside one process of a main computer operating system.
The main problem is the limitation on the number of computer emulators that can be used on a typically configured server. This limitation is usually due to the fact that the size of the emulated memory is close to the size of the memory used by the process or in which the computer emulator works. That is, the number of computer emulators that can be simultaneously used on one server ranges from about 2–3 to about 10–15. All of the above-mentioned solutions can be classified as multikernel implementations of virtual computers; i.e., the simultaneous existence on one physical computer of several operating system kernels that are unaware of each other.
Therefore, when it is necessary for many personal computer users to deal with a hosting computer, each personal computer user must be provided with a complete set of services that the personal computer user can expect from the host; i.e., a complete virtual environment which emulates a complete computer with installed operating system. For an effective use of equipment, the number of computers in a virtual environment installed in one host computer should be at least two to three times larger than the numbers mentioned above.